#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);
    int i = 0;
    int sex[50] = {0};
    char name[50][9];//给的名字不超过8个字母，加上预留的\0，空间至少要9位
    char *printorder[50];//按顺序存名字地址
    for (i = 0; i < n; i++)
    {
        getchar();
        scanf("%d %s", &sex[i], name+i);
    }
    int high = 0;//分数高的存在低下标位置
    int low = n;
    i = 0;
    while(high<low)//下标比较
    {
        low--;//提前减减方便后面重置low值（因为可能存在是同性跳过的情况，所以每次都重来）
        if (sex[high] != -1 && sex[low] != -1)
        {
            if (sex[high] != sex[low])
            {
                printorder[i] = &name[high][0];
                printorder[i + 1] = &name[low][0];
                sex[high] = -1;
                sex[low] = -1;
                high++;
                low = n;
                i += 2;
            }
        }
    }
    for (i = 0; i < n; i+=2)
    {
        printf("%s %s\n", printorder[i], printorder[i + 1]);
    }
    return 0;
}